<? namespace Clases;
include 'Configuracion/conf.php';
class ConexionMySQL
{
    /*VARIABLES DE USO GENERAL*/
    private $con;
    
     /* Metodo: constructor
       * Funcion: init objeto
       * No params
       * No returns
    */
    function __construct()
    {
        try {
            global $username,$password,$MySQLServer,$db;
            $this->con = mysql_connect($MySQLServer, $username, $password) or die($this->error(mysql_error()));
            mysql_select_db($db) or die($this->error(mysql_error()));
        } catch (Exception $ex) {
            $this->error($ex);
        }
    }
    
    /* Metodo: getQuery
       * Funcion: obtener DataSet de una query
       * String query - query a realizar
       * Regresa DataSet
    */

    function GetQuery($query)
    {
        $resultado = mysql_query($query) or die($this->error(mysql_error()));
        return $resultado;
       
    }//fin del metodo getQuery
    
    /* Metodo: AcccionesDB
        * Funcion: Processos en la base de datos
        * String: Diccionario de parametros y valores, nombre del stored procedure
        * Regresa T/F
    */
    
    function AccionesDB($arrayvalores, $procedure)
    {
          try
            {
              $queryprocedure = "call ".$procedure."(";
              foreach ($arrayvalores as &$valor) 
                   $queryprocedure.=("'".$valor."'".",");
              $queryprocedure = substr_replace($queryprocedure ,"",-1);
              $queryprocedure.= ")";
              mysql_query($queryprocedure);
              return true;
            }
            catch (Exception $e)
            {
                $this->error($e);
                return false;
            }

    } // fin del metodo AccionesDB
    
    /* Metodo: AcccionesDB
        * Funcion: Processos en la base de datos
        * Params: sql a ejecutar
        * Regresa T/F
    */
    
    function AccionesDBS($sql)
    {
         try
            {
                $resultado = mysql_query($sql);
                if(!$resultado)
                    $this->error(mysql_error());
                return true;
            }
            catch (Exception $e)
            {
                $this->error($e);
                return false;
            }

    } // fin del metodo AccionesDBS
    
    /*  Metodo: Insertar
        * Funcion: Insertar Registro en la Base de Datos
        * String: Diccionario de parametros y valores, nombre del stored procedure
        * Regresa T/F
    */
    
    function Insertar($arrayvalores, $procedure)
    {
          try
            {
              $queryprocedure = "call ".$procedure."(";
              foreach ($arrayvalores as &$valor) 
                   $queryprocedure.=("'".$valor."'".",");
              $queryprocedure = substr_replace($queryprocedure ,"",-1);
              $queryprocedure.= ")";
              mysql_query($queryprocedure);
              return true;
            }
            catch (Exception $e)
            {
                $this->error($e);
                return false;
            }

    } // fin del metodo Insertar
    
     /*  Metodo: InsertarId
        * Funcion: Insertar Registro en la Base de Datos
        * String: Diccionario de parametros y valores, nombre del stored procedure
        * Regresa Id del registro
    */
    
    function InsertarID($arrayvalores, $procedure, $id, $tabla)
    {
          try
            {
              /*METER REGISTRO*/
              $queryprocedure = "call ".$procedure."(";
              foreach ($arrayvalores as &$valor) 
                   $queryprocedure.=("'".$valor."'".",");
              $queryprocedure = substr_replace($queryprocedure ,"",-1);
              $queryprocedure.= ")";
              mysql_query($queryprocedure);
              /****************/
              
              /***OBTENER ID DEL ULTIMO REGISTRO***/
              $str = "SELECT " . $id  . " FROM " . $tabla . " ORDER BY " . $id . " DESC LIMIT 1";
              echo $queryprocedure;
              $resultado = mysql_query($str);
              $row = mysql_fetch_row($resultado);
              $retId = $row[0];
              /***********************************/
              return $retId;
            }
            catch (Exception $e)
            {
                $this->error($e);
                return false;
            }

    } // fin del metodo InsertarID
    
    /* 
     *  Metodo: close
        * Funcion: cerrar conexion server MySQL
        * No Params
        * No Returns
    */
    
    function close() {
       mysql_close($this->con);
    }

    /* 
     *  Metodo: error
        * Funcion: mostrar error medio web
        * Params: error
        * No Returns
    */
    
    function error($ex) {
        header( 'Location: ./errorPage.php?nombre=Conexion Base De Datos&descripcion='.$ex );
    }

   } 
?>